home *** CD-ROM | disk | FTP | other *** search
/ Freelog 117 / FreelogNo117-OctobreNovembre2013.iso / Programmation / jedit / jedit5.1.0install.exe / {app} / modes / slax.xml < prev    next >
Extensible Markup Language  |  2013-07-28  |  6KB  |  151 lines

  1. <?xml version="1.0"?>
  2. <!DOCTYPE MODE SYSTEM "xmode.dtd">
  3.  
  4. <!-- SLAX Script mode written by Curtis Call  
  5.  
  6.      Types:
  7.      
  8.         LITERAL1 = " " Strings 
  9.         LITERAL2 = ' ' Strings
  10.         LITERAL3 = /* */ Comments, Operators, Location Paths, Namespace prefix declarations
  11.         KEYWORD1 = SLAX statements
  12.         KEYWORD2 = Variables
  13.         KEYWORD3 = XML Tags
  14.         KEYWORD4 = Attributes
  15.         FUNCTION = Templates
  16.         DIGIT = Numbers
  17.      
  18.      Note - LITERAL3 had to highlight different types due to the quirks of the matching
  19.      possibilities.  The main problem is with trying to match comments that follow a line
  20.      termination.  I could determine no possible way to correctly match only correct comments
  21.      and to also use the correct color for the comment as well as the line termination.  The 
  22.      workaround was to combine multiple types of syntax into the LITERAL3 value. 
  23.      This is why operators are not matched.  They have to be grouped in along with the rest
  24.      so it is ok to let them be caught by default.  -->
  25.      
  26. <MODE>
  27.  
  28.     <PROPS>
  29.         <!-- SLAX has no line comment, only a /* */ comment -->
  30.         <PROPERTY NAME="commentStart" VALUE="/*"/>
  31.         <PROPERTY NAME="commentEnd" VALUE="*/"/>
  32.     
  33.         <!--  - and _ and : are valid within SLAX words -->
  34.         <PROPERTY NAME="wordBreakChars" VALUE=",/+=*"/>
  35.         <PROPERTY NAME="noWordSep" VALUE="-_:."/>
  36.     
  37.         <!-- { and } always surround SLAX code blocks, but I cannot get auto-indenting
  38.              to work correctly so I'll just disable the functionality.
  39.         <PROPERTY NAME="indentOpenBrackets" VALUE="{"/>
  40.         <PROPERTY NAME="indentCloseBrackets" VALUE="}"/>
  41.         <PROPERTY NAME="unalignedOpenBrackets" VALUE="("/>
  42.         <PROPERTY NAME="unalignedCloseBrackets" VALUE=")"/>
  43.                                                             -->
  44.     </PROPS>
  45.     
  46.     <RULES IGNORE_CASE="TRUE" HIGHLIGHT_DIGITS="TRUE" NO_WORD_SEP="-_:." 
  47.         DIGIT_RE="([0-9])*\.?([0-9])+" DEFAULT="LITERAL3">
  48.  
  49.         <IMPORT DELEGATE="leading-comments"/>
  50.         <IMPORT DELEGATE="strings"/>
  51.         <IMPORT DELEGATE="variables"/>
  52.         <IMPORT DELEGATE="templates"/>
  53.         <IMPORT DELEGATE="statements"/>
  54.         <IMPORT DELEGATE="xml-tags"/>
  55.         <IMPORT DELEGATE="trailing-comments"/>
  56.     </RULES>
  57.  
  58.     <!-- These comments start the line so it is obvious that they are not location paths -->
  59.     <RULES SET="leading-comments">
  60.         <SPAN TYPE="LITERAL3" AT_WHITESPACE_END="TRUE">
  61.             <BEGIN>/*</BEGIN> 
  62.             <END>*/</END>
  63.         </SPAN>
  64.     </RULES>
  65.         
  66.     <!-- These comments trail at the end of the line - impossible to catch and maintain separate
  67.          colors with operators -->
  68.     <RULES SET="trailing-comments">
  69.         <SPAN_REGEXP TYPE="LITERAL3">
  70.             <BEGIN>((;)|(\})|(\{)|(\)))(\s)*/\*</BEGIN> 
  71.             <END>*/</END>
  72.         </SPAN_REGEXP>
  73.     </RULES>
  74.         
  75.     <!-- Both " " and ' ' strings are correctly caught -->
  76.     <RULES SET="strings">
  77.         <SPAN TYPE="LITERAL1" ESCAPE="\">
  78.             <BEGIN>"</BEGIN>
  79.             <END>"</END>
  80.         </SPAN>
  81.         <SPAN TYPE="LITERAL2" ESCAPE="\">
  82.             <BEGIN>'</BEGIN>
  83.             <END>'</END>
  84.         </SPAN>
  85.     </RULES>
  86.     
  87.     <!-- The XML start tag is embedded in SLAX scripts -->
  88.     <RULES SET="xml-tags" DEFAULT="KEYWORD3">
  89.         <SPAN_REGEXP TYPE="KEYWORD3" DELEGATE="inside-the-tag">
  90.             <BEGIN><![CDATA[<([a-z]|[A-Z])]]></BEGIN>
  91.             <END><![CDATA[>]]></END>
  92.         </SPAN_REGEXP>
  93.     </RULES>
  94.     
  95.     <!-- This sets the actual tag < > and tag name to KEYWORD3, the = to LITERAL3
  96.          and sends the attributes to the attribute RULES and strings to string RULES -->
  97.     <RULES SET="inside-the-tag" DEFAULT="KEYWORD3">
  98.         <SPAN_REGEXP TYPE="LITERAL3" DELEGATE="attribute">
  99.             <BEGIN>(\s)+(?!>)</BEGIN>
  100.             <END>=</END>
  101.         </SPAN_REGEXP>
  102.         <IMPORT DELEGATE="strings"/>
  103.     </RULES>
  104.     
  105.     <!-- XML attributes are KEYWORD4 -->
  106.     <RULES SET="attribute" DEFAULT="KEYWORD4">
  107.     </RULES>
  108.  
  109.     <!-- Applies to both variables and parameters, everything that starts with a $ -->
  110.     <RULES SET="variables">
  111.         <MARK_FOLLOWING TYPE="KEYWORD2">$</MARK_FOLLOWING>
  112.     </RULES>
  113.  
  114.     <!-- Anything that is immediately prior to a ( will be set to FUNCTION and the ( to
  115.          LITERAL3 -->
  116.     <RULES SET="templates">
  117.         <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="LITERAL3">(</MARK_PREVIOUS>
  118.     </RULES>
  119.  
  120.     <!-- This is the SLAX statement set, they use KEYWORD1 -->
  121.     <RULES SET="statements">
  122.         <KEYWORDS>
  123.             <KEYWORD1>if</KEYWORD1>
  124.             <KEYWORD1>version</KEYWORD1>
  125.             <KEYWORD1>ns</KEYWORD1>
  126.             <KEYWORD1>param</KEYWORD1>
  127.             <KEYWORD1>var</KEYWORD1>
  128.             <KEYWORD1>template</KEYWORD1>
  129.             <KEYWORD1>match</KEYWORD1>
  130.             <KEYWORD1>else</KEYWORD1>
  131.             <KEYWORD1>copy-of</KEYWORD1>
  132.             <KEYWORD1>copy</KEYWORD1>
  133.             <KEYWORD1>call</KEYWORD1>
  134.             <KEYWORD1>apply-templates</KEYWORD1>
  135.             <KEYWORD1>expr</KEYWORD1>
  136.             <KEYWORD1>import</KEYWORD1>
  137.             <KEYWORD1>input</KEYWORD1>
  138.             <KEYWORD1>for-each</KEYWORD1>
  139.             <KEYWORD1>mode</KEYWORD1>
  140.             <KEYWORD1>priority</KEYWORD1>
  141.             <KEYWORD1>extension</KEYWORD1>
  142.             <KEYWORD1>preserve-space</KEYWORD1>
  143.             <KEYWORD1>strip-space</KEYWORD1>
  144.             <KEYWORD1>with</KEYWORD1>
  145.         </KEYWORDS>
  146.     </RULES>
  147.  
  148. </MODE>
  149.  
  150.             
  151.